package ninth.线程操作的相关方法;

/**
 * Java中一共有三种优先级                                                     表示的常量
 * public static final int MIN_PRIORITY     最低优先级                           1
 * public static final int NORM_PRIORITY    中等优先级 是线程的默认优先级           5
 * public static final int MAX_PRIORITY     最高优先级                          10
 */

//使用之前写过的MyThread2

public class 线程的优先级 {
    public static void main(String[] args) {
        Thread t1 = new Thread(new MyThread2(), "线程A");//实例化线程对象
        Thread t2 = new Thread(new MyThread2(), "线程B");//实例化线程对象
        Thread t3 = new Thread(new MyThread2(), "线程C");//实例化线程对象
        t1.setPriority(Thread.MIN_PRIORITY);    //设置线程优先级为最低
        t2.setPriority(Thread.MAX_PRIORITY);    //设置线程优先级为最高
        t3.setPriority(Thread.NORM_PRIORITY);    //设置线程优先级为中等
        //启动线程
        t1.start();
        t2.start();
        t3.start();
    }
}
/**
 * 书上说前三个分别是 B C A 但是我试了很多次都不是这种情况 而且每次前三个顺序都不一样
 *
 * 从上面的程序中可以看到，线程将根据设置其优先级的大小来决定哪个线程会先运行，但是读者一定要记住，并不是线程的优先级越高就一定会执行，
 * 哪个线程先执行将由CPU的调度决定
 *
 */
